#ifndef _H_EVENT
#define _H_EVENT

enum event_type{
    event_type_none = 0,
    event_type_action_enter,
    event_type_action_press,
    event_type_action_toggle,
    event_type_window_resize,
    event_type_frame_close,
    event_type_frame_minimize,
    event_type_frame_lock
};

class winElmt;

class event{
    protected:
        winElmt* sender;
        event_type type;

    public:
        event(winElmt*);
        virtual ~event();
        winElmt* getSender();
        event_type getType();

        static const char* typeToString(event_type);
};

class Bevent: public event{
    protected:
        bool value;

    public:
        Bevent(winElmt*,bool);
        bool getVal();
};

#endif
